package com.zxjbyte.yiyi.framework.quartz;

import cn.hutool.core.util.StrUtil;
import com.zxjbyte.yiyi.framework.common.util.ValidationUtil;
import org.quartz.JobKey;

/**
 * JobKey构建起，唯一标识JobDetail
 *
 * 同一个组内的名字要求唯一
 *
 * @Author zhangxingjia
 * @Date 2023/11/9 11:44
 * @Version: 1.0
 */
public class JobKeyBuilder {

    public static final String JOB_KEY_DEFAULT_GROUP = "MY_JOB_GROUP";


    /**
     * 创建JobKey
     * @param name 名称
     * @param group 分组
     * @return
     */
    public static JobKey newJobKey(String name, String group){
        ValidationUtil.checkNotBlankAsString(name, "JobKey name");
        group = StrUtil.isBlank(group) ? JOB_KEY_DEFAULT_GROUP : group;
        return JobKey.jobKey(name, group);
    }

    /**
     * 创建JobKey
     * @param name 名称
     * @param group 分组
     * @return
     */
    public static JobKey newJobKey(String name, String... group){
        if(group != null && group.length >= 1){
            return newJobKey(name, group[0]);
        } else {
            return newJobKey(name);
        }
    }

    /**
     * 创建JobKey
     * @param name 名称
     * @return
     */
    public static JobKey newJobKey(String name){
        return newJobKey(name, JOB_KEY_DEFAULT_GROUP);
    }
}
